<script src="../include.js"></script>
<script>
    asyncTest(done => {
        let channel = new MessageChannel();

        channel.port1.onmessage = (event) => {
            println("Port1: " + JSON.stringify(event.data));
            channel.port1.postMessage(event.data);
        };

        channel.port2.onmessage = (event) => {
            println("Port2: " + JSON.stringify(event.data));
            if (event.data === "DONE") {
                done();
            }
        };

        // FIXME: These should be output in the order: Port1: A, Port2: A, Port1: B, Port2: B, ...
        println("FIXME: Order of messages is incorrect");
        channel.port2.postMessage("Hello");
        channel.port2.postMessage({ foo: "bar", baz: [ 1, 2, 3, 4 ] });
        channel.port2.postMessage("DONE");
    });
</script>
